package com.runewbie.pafcmall.ware.feign;

import com.runewbie.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author: li_jian
 * @version: 1.0
 * @date: 2020/5/15 22:03
 * @description： 使用feign远程调用 product 服务
 */
@FeignClient("pafcmall-product") // 这是一个声明式的远程调用
//@FeignClient("pafcmall-gateway") // 这是一个声明式的远程调用
public interface ProductFeignService {

    /**
     * 获取sku信息
     * <p>
     * 有两种方式获取到产品信息，一种是直接请求商品服务，另一种是通过网关来请求
     * 1、让所有请求过网关
     *  1）、@FeignClient("pafcmall-gateway") 给 pafcmall-gateway 所在的机器发送请求
     *  2）、/api/product/skuinfo/info/{skuId}
     * <p>
     * 2、直接让后台指定服务处理
     *  1）、@FeignClient("pafcmall-product")
     *  2）、/product/skuinfo/info/{skuId}
     *
     * 服务内部之间的调用，我们选择不过网关
     * @param skuId
     * @return
     */
    @RequestMapping("/product/skuinfo/info/{skuId}")
    public R info(@PathVariable("skuId") Long skuId);
}
